MongoDB-তে ডকুমেন্ট আপডেট করতে Java MongoDB Driver এর মধ্যে updateOne() এবং updateMany() মেথড দুটি ব্যবহৃত হয়। এই মেথডগুলো MongoDB কোলেকশনে এক বা একাধিক ডকুমেন্ট আপডেট করতে সহায়তা করে। তাদের ব্যবহার এবং কার্যকারিতা বুঝতে, আমরা প্রতিটি মেথডের ব্যবহার দেখবো।
1. updateOne() মেথড:
updateOne() মেথডটি একটি নির্দিষ্ট ডকুমেন্ট আপডেট করতে ব্যবহৃত হয় যা একটি কন্ডিশন মেট করে। এটি কেবল একটি ডকুমেন্টকে আপডেট করে, এমনকি যদি কন্ডিশন অনুযায়ী একাধিক ডকুমেন্ট মিলে থাকে তবুও শুধু প্রথমটি আপডেট করা হয়।
updateOne() মেথডের সিনট্যাক্স:
collection.updateOne(
filter, // A filter to specify the document to update
update, // The update operation to apply
options // Optional settings for the update operation
);
filter: যে ডকুমেন্টটি আপডেট করতে হবে, তার শর্ত।update: যে পরিবর্তন বা আপডেট প্রযোজ্য হবে।options: এটি ঐচ্ছিক। বিশেষ অপশন যেমনupsert(যদি ডকুমেন্ট না পাওয়া যায়, তবে একটি নতুন ডকুমেন্ট তৈরি হবে)।
উদাহরণ:
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class MongoUpdateOneExample {
public static void main(String[] args) {
// MongoDB client setup
var mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("users");
// Filter to find a specific document
Document filter = new Document("name", "John Doe");
// The update operation to change the age
Document update = new Document("$set", new Document("age", 35));
// Update the document
collection.updateOne(filter, update);
System.out.println("Document updated successfully!");
}
}
ব্যাখ্যা:
- এই উদাহরণে,
"name": "John Doe"শর্তে প্রথম মেলানো ডকুমেন্টেরageফিল্ডকে 35 এ আপডেট করা হয়েছে। $setঅপারেটর MongoDB-তে ডকুমেন্টের একটি বা একাধিক ফিল্ড আপডেট করার জন্য ব্যবহৃত হয়।
2. updateMany() মেথড:
updateMany() মেথডটি কোলেকশনের সকল ডকুমেন্ট আপডেট করতে ব্যবহৃত হয় যা একটি নির্দিষ্ট কন্ডিশন মেনে চলে। এটি একাধিক ডকুমেন্ট আপডেট করে, যেগুলি নির্দিষ্ট ফিল্টার কন্ডিশন মেটায়।
updateMany() মেথডের সিনট্যাক্স:
collection.updateMany(
filter, // A filter to specify the documents to update
update, // The update operation to apply
options // Optional settings for the update operation
);
filter: যে ডকুমেন্টগুলিকে আপডেট করতে হবে, তার শর্ত।update: যে পরিবর্তন বা আপডেট প্রযোজ্য হবে।options: এটি ঐচ্ছিক। এখানেupsertঅপশনটি দেওয়া যেতে পারে, যা যদি কোনো ডকুমেন্ট না পাওয়া যায়, তবে নতুন ডকুমেন্ট তৈরি করবে।
উদাহরণ:
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class MongoUpdateManyExample {
public static void main(String[] args) {
// MongoDB client setup
var mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("users");
// Filter to find all users older than 30
Document filter = new Document("age", new Document("$gt", 30));
// The update operation to set "status" to "active"
Document update = new Document("$set", new Document("status", "active"));
// Update all matching documents
collection.updateMany(filter, update);
System.out.println("Documents updated successfully!");
}
}
ব্যাখ্যা:
- এই উদাহরণে,
age > 30শর্তে সকল মেলানো ডকুমেন্টের"status"ফিল্ডকে"active"এ আপডেট করা হয়েছে। $setঅপারেটর ব্যবহৃত হয়েছে যাতে ডকুমেন্টের"status"ফিল্ড আপডেট হয়।
updateOne() এবং updateMany() এর মধ্যে পার্থক্য:
| মেথড | কাজ | উপযুক্ত ব্যবহার |
|---|---|---|
updateOne() | শুধুমাত্র একটি ডকুমেন্ট আপডেট করে যা শর্ত পূর্ণ করে | যখন এক বা একাধিক শর্তের মধ্যে প্রথম ডকুমেন্ট আপডেট করতে চান |
updateMany() | একাধিক ডকুমেন্ট আপডেট করে যা শর্ত পূর্ণ করে | যখন একাধিক ডকুমেন্ট আপডেট করতে চান |
3. Additional Features:
- Upsert:
upsertঅপশন দিয়ে আপনি MongoDB-তে ডকুমেন্ট না পাওয়া গেলে নতুন ডকুমেন্ট তৈরি করতে পারেন।upsertব্যবহার করতে হলেupdateOne()বাupdateMany()মেথডের সাথেnew UpdateOptions().upsert(true)ব্যবহার করা হয়।
collection.updateOne(
new Document("name", "Jane Doe"),
new Document("$set", new Document("age", 25)),
new UpdateOptions().upsert(true)
);
- Atomicity:
- MongoDB-তে
updateOne()এবংupdateMany()মেথডগুলো অ্যাটমিক ট্রানজেকশনের মতো কাজ করে, অর্থাৎ যদি একাধিক ডকুমেন্ট আপডেট করা হয় তবে এটি সম্পূর্ণ হবে বা পুরোপুরি ব্যর্থ হবে।
- MongoDB-তে
MongoDB-তে updateOne() এবং updateMany() মেথডগুলো গুরুত্বপূর্ণ এবং প্রতিদিনের ডাটাবেস ম্যানিপুলেশনে খুবই কার্যকরী। updateOne() একটি ডকুমেন্ট আপডেট করে, এবং updateMany() একাধিক ডকুমেন্ট আপডেট করে, যা বড় ডেটাসেটে কাজ করার সময় সময় ও সংস্থান সাশ্রয়ী হয়। আপনি এই মেথডগুলোকে MongoDB-তে ডাটা আপডেটের সময় দক্ষভাবে ব্যবহার করতে পারেন, বিশেষত যখন আপনি ডেটার বড় ভলিউম আপডেট করতে চান।
Read more